home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ray Dream Studio
/
Ray Dream Studio (CDRAYD1) (Ray Dream) (1995).iso
/
DREAMSDK.WIN
/
INCLUDE
/
I3DEXSHA.H
< prev
next >
Wrap
C/C++ Source or Header
|
1995-09-01
|
3KB
|
70 lines
/* $Id: i3dexsha.h 1.2 1995/06/30 18:51:58 michel Exp $ */
/*****************************************************************************\
* *
* I3DExSha.h - I3DExShader definition *
* *
* Copyright (c) 1995, Ray Dream, Inc. All rights reserved. *
* *
\*****************************************************************************/
#ifndef __I3DEXSHA__
#define __I3DEXSHA__
#ifndef __I3DEX__
#include "I3DEx.h"
#endif
enum {
kUsesGetValue = 1,
kUsesGetColor = 2,
kUsesGetVector = 4,
kUsesDoShade = 16
};
//****** Globally Unique Ids *************************************************
DEFINE_GUID(IID_I3DExShader, 0x06DD2161L, 0x2ED7, 0x101C, 0x88, 0x5F, 0x04, 0x02, 0x1C, 0x00, 0x70, 0x02);
/*****************************************************************************\
* I3DExShader *
* *
* Shaders *
* *
\*****************************************************************************/
#undef INTERFACE
#define INTERFACE I3DExShader
DECLARE_INTERFACE_(I3DExShader, I3DExDataExchanger) {
// IUnknown methods
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG, AddRef) (THIS) PURE;
STDMETHOD_(ULONG, Release) (THIS) PURE;
// I3DExtension methods
STDMETHOD_(I3DExtension*, Clone) (THIS) PURE;
STDMETHOD(ShellUtilitiesInit) (THIS_ IShUtilities* shellUtilities) PURE;
// I3DExDataExchanger methods
STDMETHOD_(ExtensionDataMap*, GetExtensionDataMap) (THIS) PURE;
STDMETHOD_(void*, GetExtensionDataBuffer) (THIS) PURE;
STDMETHOD(ExtensionDataChanged) (THIS) PURE;
STDMETHOD(HandleEvent) (THIS_ ULONG sourceID) PURE;
STDMETHOD_(short, GetResID) (THIS) PURE;
// I3DExShader methods
STDMETHOD_(BOOLEAN, IsEqualTo) (THIS_ I3DExShader* aShader) PURE;
STDMETHOD_(BOOLEAN, DependsOnAppliedExtent) (THIS) PURE;
STDMETHOD(GetShadingFlags) (THIS_ ShadingFlags* theFlags) PURE;
STDMETHOD_(ULONG, GetPreferredOutput) (THIS) PURE; // Tell which one of the following calls is implemented. See kUseGetValue... constants above
//-- Shading calls. Implement only one of those. Return E_NOTIMPL for the others
STDMETHOD(DoShade) (THIS_ ShadingInOut* inOut, ShadingElem* shadingElem) PURE;
STDMETHOD(GetValue) (THIS_ NUM3D* result, ShadingIn* in, ShadingElem* theShadingElem) PURE;
STDMETHOD(GetColor) (THIS_ COLOR3D* result, ShadingIn* in, ShadingElem* theShadingElem) PURE;
STDMETHOD(GetVector) (THIS_ VECTOR3D* result, ShadingIn* in, ShadingElem* theShadingElem) PURE;
};
#endif